﻿using System.Reflection.Metadata;

namespace class_14_out_ref
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int h = 100;
            int b = 200;
            test(h);
            Console.WriteLine("h=" + h);//打印出的结果仍为100

            test2(out h);

            Console.WriteLine("h=" + h);//打印出结果为0
            //out会传递变量的地址，指向同一空间
            //out修饰的变量必须要在调用的函数内赋值

            test3(ref b);//要在传递前进行赋值
            //可以不在调用后进行操作

        }

        static void test(int n)
        {

            n = 0;

        }
        static void test2(out int n)
        {

            n = 0;


        }
        static void test3(ref int n)//可以不进行操作
        {


        }

    }
}
